Регулярные выражения
Разработчику
Аналитику
Тестировщику
Архитектору
Инженеру
Регулярные выражения
Что такое регулярные выражения?
Регулярные выражения, или RegEx (regular expressions) — это последовательность символов, которая задаёт правило поиска строк в тексте. Они поддерживаются почти во всех языках программирования.
Используются они для валидаций форм (email, пароли, номера телефонов), поиска и замены в логах, автоматизации обработки текстовых файлов, очистки и структурирования данных, проверки корректности ответов.
Синтаксис RegEx состоит из:
- литералов (обычных цифр, букв);
- метасимволов (специальных символов с особыми значениями);
- экранирования спецсимволов с помощью \ или raw-строк r”.
Пример:
Проверка email (проверяет корректность адреса):
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
Поиск телефонного номера:
\+7\s$$\d{3}$$\s\d{3}-\d{2}-\d{2}
Важно: RegEx - довольно сложный инструмент, который пригодится лишь после практики. Рекомендуется к нему вернуться только после того, как на практике встретитесь с необходимостью. Можете поэкспериментировать с ними на различных сервисах, к примеру тут - https://regex101.com/.
Чит-лист - https://cheatsheets.zip/regex
Примеры регулярных выражений
| Команда | Значение | Пример |
|---|---|---|
\d | Любая цифра (0-9) | \d\d → "42" |
\w | Буква (латиница), цифра или _ | \w+ → "Hello_123" |
\s | Пробел, табуляция или перенос строки | \s+ → " " |
. | Любой символ (кроме переноса строки) | a.c → "abc", "a c" |
^ | Начало строки | ^Start → "Start..." |
$ | Конец строки | end$ → "...end" |
[...] | Любой символ из скобок | [aeiou] → "a", "e" |
[^...] | Любой символ, кроме указанных | [^0-9] → "a", "!" |
(...) | Группа символов (для захвата или применения квантификаторов) | (\d{3}) → "123" |
\ | Экранирование спецсимволов (чтобы искать их как текст) | \. → "." |
* | 0 и более раз | a* → "", "a", "aaa" |
+ | 1 и более раз | a+ → "a", "aaa" |
? | 0 или 1 раз | a? → "", "a" |
{n} | Ровно n раз | a{3} → "aaa" |
{n,} | n и более раз | a{2,} → "aa", "aaaa" |
{n,m} | От n до m раз | a{2,4} → "aa", "aaaa" |